<?php
/**
* ECSHOP dhl插件
* $Date: 2007-07-2  $
* $Id: dhl.php 8272 2007-07-7 10:11:35Z fanan $
*/
if (!defined('RUN_FROM_INDEX')){
    die('Access Denied');
}
/* 模块的基本信息 */
if (isset($set_modules) && $set_modules == TRUE)
{
    $i = (isset($modules)) ? count($modules) : 0;
    /* 配送方式插件的代码必须和文件名保持一致 */
    $modules[$i]['code']    = basename(__FILE__, '.php');
    $modules[$i]['pingyin']  = 'dhl';
    $modules[$i]['version'] = '1.1.0';
    /* 配送方式的描述 */
    $modules[$i]['desc']    = '3 - 5business days';
    $modules[$i]['name']	=	'Expedited Shiping ';
    /* 配送方式是否支持货到付款 */
    $modules[$i]['cod']     = false;
    /* 插件的作者 */
    $modules[$i]['author']  = 'fanan';
    /* 插件作者的官方网站 */
    $modules[$i]['website'] = 'http://www.lovean.com';
    /* 配送接口需要的参数 */
    $modules[$i]['configure'] = array(
                                    array('name' => 'base1_fee',     'value'=>20),
                                    array('name' => 'step1_fee',     'value'=>15),
                                );
								
	/*后台计算运费接口参数 duxueyong添加 2013-12-26*/
    $modules[$i]['real_configure'] = array(
	                                
	                                 array('name' =>'calculate_type', 'value'=>1), //后台运费计算方式，值为1代表按照0.5-20KG区间方式进行计算 ，2代表传统首重、续重方式进行计算
                                     /*当计算方式为2时，需要以下参数*/
									 array('name'=>'my_base_original','value'=>20),	//首重费用原价（0.5千克）
									 array('name'=>'my_base_discount','value'=>1),  //首重费用折扣
									 array('name'=>'my_step_original','value'=>15), //续重费用原件
									 array('name'=>'my_step_discount','value'=>1),
									 /*当计算方式为1时，需要以下参数*/									 
	                                 array('name' => '0_5_original', 'value'=>1),  //0.5千克以内原价 以下类同
									 array('name' => '0_5_discount', 'value'=>1),  //0.5千克以内折扣 取值0到1之间 以下类同
									 array('name' => '1_0_original', 'value'=>1),
									 array('name' => '1_0_discount', 'value'=>1),
									 array('name' => '1_5_original', 'value'=>1),
									 array('name' => '1_5_discount', 'value'=>1),
									 array('name' => '2_0_original', 'value'=>1),
									 array('name' => '2_0_discount', 'value'=>1),
									 array('name' => '2_5_original', 'value'=>1),
									 array('name' => '2_5_discount', 'value'=>1),
									 array('name' => '3_0_original', 'value'=>1),
									 array('name' => '3_0_discount', 'value'=>1),
									 array('name' => '3_5_original', 'value'=>1),
									 array('name' => '3_5_discount', 'value'=>1),
									 array('name' => '4_0_original', 'value'=>1),
									 array('name' => '4_0_discount', 'value'=>1),
									 array('name' => '4_5_original', 'value'=>1),
									 array('name' => '4_5_discount', 'value'=>1),
									 array('name' => '5_0_original', 'value'=>1),
									 array('name' => '5_0_discount', 'value'=>1),
									 array('name' => '5_5_original', 'value'=>1),
									 array('name' => '5_5_discount', 'value'=>1),
									 array('name' => '6_0_original', 'value'=>1),
									 array('name' => '6_0_discount', 'value'=>1),
									 array('name' => '6_5_original', 'value'=>1),
									 array('name' => '6_5_discount', 'value'=>1),
									 array('name' => '7_0_original', 'value'=>1),
									 array('name' => '7_0_discount', 'value'=>1),
									 array('name' => '7_5_original', 'value'=>1),
									 array('name' => '7_5_discount', 'value'=>1),
									 array('name' => '8_0_original', 'value'=>1),
									 array('name' => '8_0_discount', 'value'=>1),
									 array('name' => '8_5_original', 'value'=>1),
									 array('name' => '8_5_discount', 'value'=>1),
									 array('name' => '9_0_original', 'value'=>1),
									 array('name' => '9_0_discount', 'value'=>1),
									 array('name' => '9_5_original', 'value'=>1),
									 array('name' => '9_5_discount', 'value'=>1),
									 array('name' => '10_0_original', 'value'=>1),
									 array('name' => '10_0_discount', 'value'=>1),
									 array('name' => '10_5_original', 'value'=>1),
									 array('name' => '10_5_discount', 'value'=>1),
									 array('name' => '11_0_original', 'value'=>1),
									 array('name' => '11_0_discount', 'value'=>1),
									 array('name' => '11_5_original', 'value'=>1),
									 array('name' => '11_5_discount', 'value'=>1),
									 array('name' => '12_0_original', 'value'=>1),
									 array('name' => '12_0_discount', 'value'=>1),
									 array('name' => '12_5_original', 'value'=>1),
									 array('name' => '12_5_discount', 'value'=>1),
									 array('name' => '13_0_original', 'value'=>1),
									 array('name' => '13_0_discount', 'value'=>1),
									 array('name' => '13_5_original', 'value'=>1),
									 array('name' => '13_5_discount', 'value'=>1),
									 array('name' => '14_0_original', 'value'=>1),
									 array('name' => '14_0_discount', 'value'=>1),
									 array('name' => '14_5_original', 'value'=>1),
									 array('name' => '14_5_discount', 'value'=>1),
									 array('name' => '15_0_original', 'value'=>1),
									 array('name' => '15_0_discount', 'value'=>1),
									 array('name' => '15_5_original', 'value'=>1),
									 array('name' => '15_5_discount', 'value'=>1),
									 array('name' => '16_0_original', 'value'=>1),
									 array('name' => '16_0_discount', 'value'=>1),
									 array('name' => '16_5_original', 'value'=>1),
									 array('name' => '16_5_discount', 'value'=>1),
									 array('name' => '17_0_original', 'value'=>1),
									 array('name' => '17_0_discount', 'value'=>1),
									 array('name' => '17_5_original', 'value'=>1),
									 array('name' => '17_5_discount', 'value'=>1),
									 array('name' => '18_0_original', 'value'=>1),
									 array('name' => '18_0_discount', 'value'=>1),
									 array('name' => '18_5_original', 'value'=>1),
									 array('name' => '18_5_discount', 'value'=>1),
									 array('name' => '19_0_original', 'value'=>1),
									 array('name' => '19_0_discount', 'value'=>1),
									 array('name' => '19_5_original', 'value'=>1),
									 array('name' => '19_5_discount', 'value'=>1),
									 array('name' => '20_0_original', 'value'=>1),
									 array('name' => '20_0_discount', 'value'=>1),
									 
									 array('name' => 'step_original',  'value'=>1), //超20公斤包裹每1公斤原价 
									 array('name' => 'step_discount', 'value'=>1),  //超20公斤包裹每1公斤折扣 取值0到1之间
									 array('name' => 'max_weight', 'value' => 0),     // 运输最大重量,0表示不限
									 array('name' => 'overweight_type', 'value' =>1)  //超重处理方式 1表示抛弃 2表示分包 
									 
	                                 );
	
    return;
}
/**
* 包裹费用计算方式
* ====================================================================================
* 500g及500g以内                             20元
* -------------------------------------------------------------------------------------
* 续重每500克或其零数                       15元
* -------------------------------------------------------------------------------------
*
*/
class dhl
{
    /*------------------------------------------------------ */
    //-- PUBLIC ATTRIBUTEs
    /*------------------------------------------------------ */
    /**
     * 配置信息
     */
    var $configure;
    /*------------------------------------------------------ */
    //-- PUBLIC METHODs
    /*------------------------------------------------------ */
    /**
     * 构造函数
     *
     * @param: $configure[array]    配送方式的参数的数组
     *
     * @return null
     */
    function __constructor($cfg=array())
    {
        foreach ($cfg AS $key=>$val)
        {
            $this->configure[$val['name']] = $val['value'];
        }
    }
    /**
     * 计算订单的配送费用的函数
     *
     * @param   float   $goods_weight   商品重量
     * @param   float   $goods_amount   商品金额
     * @return  decimal
     */
    function calculate($goods_weight, $goods_amount)
    {
        if ($this->configure['free_money'] > 0 && $goods_amount >= $this->configure['free_money'])
        {
            return 0;
        }
        else
        {
            $fee = $this->configure['base1_fee'];
            if ($goods_weight > 0.5)
            {
                $fee += (ceil(($goods_weight - 0.5) / 0.5)) * $this->configure['step1_fee'];
            }
            return $fee;
        }
    }
    /**
     * 查询发货状态
     *
     * @access  public
     * @param   string  $invoice_sn     发货单号
     * @return  string
     */
    function query($invoice_sn)
    {
        $str = '<form style="margin:0px" methods="post" '.
            'action="http://www.yw56.com.cn/english/index-en.asp" name="queryForm_' .$invoice_sn. '" target="_blank">'.
   '<input type="hidden" name="pageToInclude" value="RESULTS" />'.
            '<input type="hidden" name="AWB" value="' .$invoice_sn. '" />'.
            '<a href="javascript:document.forms[\'queryForm_' .$invoice_sn. '\'].submit();">' .$invoice_sn. '</a>'.
            '<input type="hidden" name="type" value="fasttrack" />'.
            '</form>';
        return $str;
    }
}
?>